package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Promozioni generated by hbm2java
 */
@Entity
@Table(name = "promozioni")
public class Promozioni implements java.io.Serializable {

	private static final long serialVersionUID = -2931363889201027175L;
	private long idPromozione;
	private StatiPromo statiPromo;
	private Date dataInizioValidita;
	private Date dataFineValidita;
	private Set<AssPromoProfili> assPromoProfilis = new HashSet<AssPromoProfili>(
			0);

	public Promozioni() {
	}

	public Promozioni(long idPromozione) {
		this.idPromozione = idPromozione;
	}

	public Promozioni(long idPromozione, StatiPromo statiPromo,
			Date dataInizioValidita, Date dataFineValidita,
			Set<AssPromoProfili> assPromoProfilis) {
		this.idPromozione = idPromozione;
		this.statiPromo = statiPromo;
		this.dataInizioValidita = dataInizioValidita;
		this.dataFineValidita = dataFineValidita;
		this.assPromoProfilis = assPromoProfilis;
	}

	@Id
	@Column(name = "id_promozione", unique = true, nullable = false)
	public long getIdPromozione() {
		return this.idPromozione;
	}

	public void setIdPromozione(long idPromozione) {
		this.idPromozione = idPromozione;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_stato_promo")
	public StatiPromo getStatiPromo() {
		return this.statiPromo;
	}

	public void setStatiPromo(StatiPromo statiPromo) {
		this.statiPromo = statiPromo;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_inizio_validita", length = 29)
	public Date getDataInizioValidita() {
		return this.dataInizioValidita;
	}

	public void setDataInizioValidita(Date dataInizioValidita) {
		this.dataInizioValidita = dataInizioValidita;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_fine_validita", length = 29)
	public Date getDataFineValidita() {
		return this.dataFineValidita;
	}

	public void setDataFineValidita(Date dataFineValidita) {
		this.dataFineValidita = dataFineValidita;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "promozioni")
	public Set<AssPromoProfili> getAssPromoProfilis() {
		return this.assPromoProfilis;
	}

	public void setAssPromoProfilis(Set<AssPromoProfili> assPromoProfilis) {
		this.assPromoProfilis = assPromoProfilis;
	}

}
